// Copyright 2023 The Pigweed Authors
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.

pub fn test_cases() -> Vec<(&'static [u8], &'static str)> {
    vec![
        (&b"\x00"[..], "AA=="),
        (&b"\x01"[..], "AQ=="),
        (&b"\x02"[..], "Ag=="),
        (&b"\x03"[..], "Aw=="),
        (&b"\x04"[..], "BA=="),
        (&b"\x05"[..], "BQ=="),
        (&b"\x06"[..], "Bg=="),
        (&b"\x07"[..], "Bw=="),
        (&b"\x08"[..], "CA=="),
        (&b"\x09"[..], "CQ=="),
        (&b"\x0a"[..], "Cg=="),
        (&b"\x0b"[..], "Cw=="),
        (&b"\x0c"[..], "DA=="),
        (&b"\x0d"[..], "DQ=="),
        (&b"\x0e"[..], "Dg=="),
        (&b"\x0f"[..], "Dw=="),
        (&b"\x10"[..], "EA=="),
        (&b"\x11"[..], "EQ=="),
        (&b"\x12"[..], "Eg=="),
        (&b"\x13"[..], "Ew=="),
        (&b"\x14"[..], "FA=="),
        (&b"\x15"[..], "FQ=="),
        (&b"\x16"[..], "Fg=="),
        (&b"\x17"[..], "Fw=="),
        (&b"\x18"[..], "GA=="),
        (&b"\x19"[..], "GQ=="),
        (&b"\x1a"[..], "Gg=="),
        (&b"\x1b"[..], "Gw=="),
        (&b"\x1c"[..], "HA=="),
        (&b"\x1d"[..], "HQ=="),
        (&b"\x1e"[..], "Hg=="),
        (&b"\x1f"[..], "Hw=="),
        (&b"\x20"[..], "IA=="),
        (&b"\x21"[..], "IQ=="),
        (&b"\x22"[..], "Ig=="),
        (&b"\x23"[..], "Iw=="),
        (&b"\x24"[..], "JA=="),
        (&b"\x25"[..], "JQ=="),
        (&b"\x26"[..], "Jg=="),
        (&b"\x27"[..], "Jw=="),
        (&b"\x28"[..], "KA=="),
        (&b"\x29"[..], "KQ=="),
        (&b"\x2a"[..], "Kg=="),
        (&b"\x2b"[..], "Kw=="),
        (&b"\x2c"[..], "LA=="),
        (&b"\x2d"[..], "LQ=="),
        (&b"\x2e"[..], "Lg=="),
        (&b"\x2f"[..], "Lw=="),
        (&b"\x30"[..], "MA=="),
        (&b"\x31"[..], "MQ=="),
        (&b"\x32"[..], "Mg=="),
        (&b"\x33"[..], "Mw=="),
        (&b"\x34"[..], "NA=="),
        (&b"\x35"[..], "NQ=="),
        (&b"\x36"[..], "Ng=="),
        (&b"\x37"[..], "Nw=="),
        (&b"\x38"[..], "OA=="),
        (&b"\x39"[..], "OQ=="),
        (&b"\x3a"[..], "Og=="),
        (&b"\x3b"[..], "Ow=="),
        (&b"\x3c"[..], "PA=="),
        (&b"\x3d"[..], "PQ=="),
        (&b"\x3e"[..], "Pg=="),
        (&b"\x3f"[..], "Pw=="),
        (&b"\x40"[..], "QA=="),
        (&b"\x41"[..], "QQ=="),
        (&b"\x42"[..], "Qg=="),
        (&b"\x43"[..], "Qw=="),
        (&b"\x44"[..], "RA=="),
        (&b"\x45"[..], "RQ=="),
        (&b"\x46"[..], "Rg=="),
        (&b"\x47"[..], "Rw=="),
        (&b"\x48"[..], "SA=="),
        (&b"\x49"[..], "SQ=="),
        (&b"\x4a"[..], "Sg=="),
        (&b"\x4b"[..], "Sw=="),
        (&b"\x4c"[..], "TA=="),
        (&b"\x4d"[..], "TQ=="),
        (&b"\x4e"[..], "Tg=="),
        (&b"\x4f"[..], "Tw=="),
        (&b"\x50"[..], "UA=="),
        (&b"\x51"[..], "UQ=="),
        (&b"\x52"[..], "Ug=="),
        (&b"\x53"[..], "Uw=="),
        (&b"\x54"[..], "VA=="),
        (&b"\x55"[..], "VQ=="),
        (&b"\x56"[..], "Vg=="),
        (&b"\x57"[..], "Vw=="),
        (&b"\x58"[..], "WA=="),
        (&b"\x59"[..], "WQ=="),
        (&b"\x5a"[..], "Wg=="),
        (&b"\x5b"[..], "Ww=="),
        (&b"\x5c"[..], "XA=="),
        (&b"\x5d"[..], "XQ=="),
        (&b"\x5e"[..], "Xg=="),
        (&b"\x5f"[..], "Xw=="),
        (&b"\x60"[..], "YA=="),
        (&b"\x61"[..], "YQ=="),
        (&b"\x62"[..], "Yg=="),
        (&b"\x63"[..], "Yw=="),
        (&b"\x64"[..], "ZA=="),
        (&b"\x65"[..], "ZQ=="),
        (&b"\x66"[..], "Zg=="),
        (&b"\x67"[..], "Zw=="),
        (&b"\x68"[..], "aA=="),
        (&b"\x69"[..], "aQ=="),
        (&b"\x6a"[..], "ag=="),
        (&b"\x6b"[..], "aw=="),
        (&b"\x6c"[..], "bA=="),
        (&b"\x6d"[..], "bQ=="),
        (&b"\x6e"[..], "bg=="),
        (&b"\x6f"[..], "bw=="),
        (&b"\x70"[..], "cA=="),
        (&b"\x71"[..], "cQ=="),
        (&b"\x72"[..], "cg=="),
        (&b"\x73"[..], "cw=="),
        (&b"\x74"[..], "dA=="),
        (&b"\x75"[..], "dQ=="),
        (&b"\x76"[..], "dg=="),
        (&b"\x77"[..], "dw=="),
        (&b"\x78"[..], "eA=="),
        (&b"\x79"[..], "eQ=="),
        (&b"\x7a"[..], "eg=="),
        (&b"\x7b"[..], "ew=="),
        (&b"\x7c"[..], "fA=="),
        (&b"\x7d"[..], "fQ=="),
        (&b"\x7e"[..], "fg=="),
        (&b"\x7f"[..], "fw=="),
        (&b"\x80"[..], "gA=="),
        (&b"\x81"[..], "gQ=="),
        (&b"\x82"[..], "gg=="),
        (&b"\x83"[..], "gw=="),
        (&b"\x84"[..], "hA=="),
        (&b"\x85"[..], "hQ=="),
        (&b"\x86"[..], "hg=="),
        (&b"\x87"[..], "hw=="),
        (&b"\x88"[..], "iA=="),
        (&b"\x89"[..], "iQ=="),
        (&b"\x8a"[..], "ig=="),
        (&b"\x8b"[..], "iw=="),
        (&b"\x8c"[..], "jA=="),
        (&b"\x8d"[..], "jQ=="),
        (&b"\x8e"[..], "jg=="),
        (&b"\x8f"[..], "jw=="),
        (&b"\x90"[..], "kA=="),
        (&b"\x91"[..], "kQ=="),
        (&b"\x92"[..], "kg=="),
        (&b"\x93"[..], "kw=="),
        (&b"\x94"[..], "lA=="),
        (&b"\x95"[..], "lQ=="),
        (&b"\x96"[..], "lg=="),
        (&b"\x97"[..], "lw=="),
        (&b"\x98"[..], "mA=="),
        (&b"\x99"[..], "mQ=="),
        (&b"\x9a"[..], "mg=="),
        (&b"\x9b"[..], "mw=="),
        (&b"\x9c"[..], "nA=="),
        (&b"\x9d"[..], "nQ=="),
        (&b"\x9e"[..], "ng=="),
        (&b"\x9f"[..], "nw=="),
        (&b"\xa0"[..], "oA=="),
        (&b"\xa1"[..], "oQ=="),
        (&b"\xa2"[..], "og=="),
        (&b"\xa3"[..], "ow=="),
        (&b"\xa4"[..], "pA=="),
        (&b"\xa5"[..], "pQ=="),
        (&b"\xa6"[..], "pg=="),
        (&b"\xa7"[..], "pw=="),
        (&b"\xa8"[..], "qA=="),
        (&b"\xa9"[..], "qQ=="),
        (&b"\xaa"[..], "qg=="),
        (&b"\xab"[..], "qw=="),
        (&b"\xac"[..], "rA=="),
        (&b"\xad"[..], "rQ=="),
        (&b"\xae"[..], "rg=="),
        (&b"\xaf"[..], "rw=="),
        (&b"\xb0"[..], "sA=="),
        (&b"\xb1"[..], "sQ=="),
        (&b"\xb2"[..], "sg=="),
        (&b"\xb3"[..], "sw=="),
        (&b"\xb4"[..], "tA=="),
        (&b"\xb5"[..], "tQ=="),
        (&b"\xb6"[..], "tg=="),
        (&b"\xb7"[..], "tw=="),
        (&b"\xb8"[..], "uA=="),
        (&b"\xb9"[..], "uQ=="),
        (&b"\xba"[..], "ug=="),
        (&b"\xbb"[..], "uw=="),
        (&b"\xbc"[..], "vA=="),
        (&b"\xbd"[..], "vQ=="),
        (&b"\xbe"[..], "vg=="),
        (&b"\xbf"[..], "vw=="),
        (&b"\xc0"[..], "wA=="),
        (&b"\xc1"[..], "wQ=="),
        (&b"\xc2"[..], "wg=="),
        (&b"\xc3"[..], "ww=="),
        (&b"\xc4"[..], "xA=="),
        (&b"\xc5"[..], "xQ=="),
        (&b"\xc6"[..], "xg=="),
        (&b"\xc7"[..], "xw=="),
        (&b"\xc8"[..], "yA=="),
        (&b"\xc9"[..], "yQ=="),
        (&b"\xca"[..], "yg=="),
        (&b"\xcb"[..], "yw=="),
        (&b"\xcc"[..], "zA=="),
        (&b"\xcd"[..], "zQ=="),
        (&b"\xce"[..], "zg=="),
        (&b"\xcf"[..], "zw=="),
        (&b"\xd0"[..], "0A=="),
        (&b"\xd1"[..], "0Q=="),
        (&b"\xd2"[..], "0g=="),
        (&b"\xd3"[..], "0w=="),
        (&b"\xd4"[..], "1A=="),
        (&b"\xd5"[..], "1Q=="),
        (&b"\xd6"[..], "1g=="),
        (&b"\xd7"[..], "1w=="),
        (&b"\xd8"[..], "2A=="),
        (&b"\xd9"[..], "2Q=="),
        (&b"\xda"[..], "2g=="),
        (&b"\xdb"[..], "2w=="),
        (&b"\xdc"[..], "3A=="),
        (&b"\xdd"[..], "3Q=="),
        (&b"\xde"[..], "3g=="),
        (&b"\xdf"[..], "3w=="),
        (&b"\xe0"[..], "4A=="),
        (&b"\xe1"[..], "4Q=="),
        (&b"\xe2"[..], "4g=="),
        (&b"\xe3"[..], "4w=="),
        (&b"\xe4"[..], "5A=="),
        (&b"\xe5"[..], "5Q=="),
        (&b"\xe6"[..], "5g=="),
        (&b"\xe7"[..], "5w=="),
        (&b"\xe8"[..], "6A=="),
        (&b"\xe9"[..], "6Q=="),
        (&b"\xea"[..], "6g=="),
        (&b"\xeb"[..], "6w=="),
        (&b"\xec"[..], "7A=="),
        (&b"\xed"[..], "7Q=="),
        (&b"\xee"[..], "7g=="),
        (&b"\xef"[..], "7w=="),
        (&b"\xf0"[..], "8A=="),
        (&b"\xf1"[..], "8Q=="),
        (&b"\xf2"[..], "8g=="),
        (&b"\xf3"[..], "8w=="),
        (&b"\xf4"[..], "9A=="),
        (&b"\xf5"[..], "9Q=="),
        (&b"\xf6"[..], "9g=="),
        (&b"\xf7"[..], "9w=="),
        (&b"\xf8"[..], "+A=="),
        (&b"\xf9"[..], "+Q=="),
        (&b"\xfa"[..], "+g=="),
        (&b"\xfb"[..], "+w=="),
        (&b"\xfc"[..], "/A=="),
        (&b"\xfd"[..], "/Q=="),
        (&b"\xfe"[..], "/g=="),
        (&b"\xff"[..], "/w=="),
    ]
}
